/*
 * 参考文章
 * https://blog.csdn.net/weixin_40763897/article/details/87883973
 * https://www.cnblogs.com/zero-vic/p/11180437.html
 * https://blog.csdn.net/hust_superman/article/details/38944891
 * https://blog.csdn.net/lianghe_work/article/details/47041153?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-47041153.nonecase&utm_term=gtk+3%20%E6%89%8B%E5%86%8C&spm=1000.2123.3001.4430
 * https://www.jianshu.com/p/60c029928e11
 *
 */


#include <gtk/gtk.h>

static void print_hello (GtkWidget *widget,gpointer   data)
{
  g_print ("Hello World\n");
}

static void activate (GtkApplication *app,gpointer user_data)
{
  GtkWidget *window;
  GtkWidget *button;
  GtkWidget *button_box;

  window = gtk_application_window_new (app);
  gtk_window_set_title (GTK_WINDOW (window), "Window");
  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);

  button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
  gtk_container_add (GTK_CONTAINER (window), button_box);

  button = gtk_button_new_with_label ("Hello World");
  g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
  g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);
  gtk_container_add (GTK_CONTAINER (button_box), button);

  gtk_widget_show_all (window);
}

int main (int argc,char **argv)
{
  GtkApplication *app;
  int status;

  app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
  status = g_application_run (G_APPLICATION (app), argc, argv);
  g_object_unref (app);

  return status;
}
